
import java.util.Calendar;
import java.util.Date;
import javax.microedition.location.Criteria;
import javax.microedition.location.Location;
import javax.microedition.location.LocationProvider;
import javax.microedition.location.QualifiedCoordinates;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Filib
 */
public class GPS {


    private int evento;
    private double latitud;
    private double longitud;
    private double velocidad;
    private String fecha;
    private String  hora;

    public GPS()
    {

    }

    public void actualizarPosicion()
    {
        try
        {
            Criteria c = new Criteria();
            c.setHorizontalAccuracy(500);

            LocationProvider lp = LocationProvider.getInstance(c);

            try
            {
                Location loc = lp.getLocation(60);

                if(loc!=null && lp.getState() == LocationProvider.AVAILABLE)
                {
                    QualifiedCoordinates coordenadas = loc.getQualifiedCoordinates();
                    setLatitud(coordenadas.getLatitude());
                    setLongitud(coordenadas.getLongitude());
                    setVelocidad(((int) (loc.getSpeed() * 100)) / 100D);
                    setEvento((getVelocidad()==0) ? 1 : 2);
                    //1 si NO me estoy moviendo
                    //2 Si me muevo
                }
                else
                {
                    setEvento(21);
                    //Si la localizacion es nula o el provedor de GPS no esta disponible
                }
            }
            catch(Exception ex)
            {
                setEvento(22);
                //La localizacion no puede ser dada.
            }
        }
        catch(Exception ex)
        {
            setEvento(23);
            //Error de provedor de localizacion.
        }
    }



    public int getEvento()
    {
        return evento;
    }

    public void setEvento(int evento)
    {
        this.evento = evento;
    }

    public double getLatitud()
    {
        return latitud;
    }

    public void setLatitud(double latitud)
    {
        this.latitud = latitud;
    }

    public double getLongitud()
    {
        return longitud;
    }

    public void setLongitud(double longitud)
    {
        this.longitud = longitud;
    }

    public double getVelocidad()
    {

        return velocidad;
    }

    public void setVelocidad(double velocidad)
    {
        this.velocidad = velocidad;
    }





       public String getHora()
    {
          Date d = new Date();
         Calendar c = Calendar.getInstance();
         c.setTime(d);
           hora=""+c.get(Calendar.HOUR_OF_DAY)+":"+c.get(Calendar.MINUTE)+":"+c.get(Calendar.SECOND);
        return hora;
    }

      public String getFecha()
    {
       Date d = new Date();
         Calendar c = Calendar.getInstance();
         c.setTime(d);
           fecha=""+c.get(Calendar.YEAR)+"-"+(c.get(Calendar.MONTH)+1)+"-"+c.get(Calendar.DATE);
           return fecha;
}
}
